/**
 * Copyright (c) 2015-2015 All Rights Reserved.
 */
package com.zbest.zpay.shared.process;

import java.util.Map;

/** 
 * @author morgan.liao
 * @version Create Time：2015年6月18日 上午10:36:50 
 */
public abstract class BaseAction {

    /**
     * 从请求和线程上下文中获取数据
     */
    protected <T extends Object> T getValue(String key) {

        Object value = ActionContext.getContext().getRequest().get(key);

        if (null == value) {
            value = ActionContext.getContext().getParam(key);
        }

        return (T) value;
    }

    protected void setProcessEnd(boolean isEnd) {
        ActionContext.getContext().setEnd(isEnd);
    }

    /**
     * 把过程中的参数存到线程变量中。
     * 
     */
    protected void setValue(String key, Object object) {
        ActionContext.getContext().setParam(key, object);
    }

    /**
     * 执行action
     * 
     * @param requestData
     * @param processResponse
     */
    public abstract void perform(ProcessResult processResponse);

    public Map<String, Object> getContextData() {
        return ActionContext.getContext().getAllData();
    }

}
